package tournamentmanager;

import java.io.Serializable;
import java.util.List;

public interface Tournament extends Runnable, Serializable {
    
    void addPlayer(ChessEngine engine);
    
    void removePlayer(int pairingNumber);
    
    List<TournamentChessEngine> getPlayersList();        
    
    int getTimeControl();
    
    int getMovesPerSession();
    
    int getTimeIncrement();
    
    int getGamesPlayed();
            
    int getGamesToPlay();
    
    String getOutPGNFile();            
    
    void setOutPGNFile(String outPGNFile);
    
    void setTimeControl(int timeControl);
    
    void setMovesPerSession(int movesPerSession);
    
    void setTimeIncrement(int timeIncrement);
    
    void resetGames();
    
    void setMatchRunner(MatchRunner matchRunner);
    
    void registerObserver(TournamentObserver observer);        
    
    void removeObserver(TournamentObserver observer);
    
    boolean isInProgress();
    
    boolean isEnded();
    
}
